return {
    'nvim-telescope/telescope.nvim',
    tag = '0.1.6',
    dependencies = {
        {
            'nvim-telescope/telescope-fzf-native.nvim',
            build =
            'cmake -S. -Bbuild -DCMAKE_BUILD_TYPE=Release -DCMAKE_POLICY_VERSION_MINIMUM=3.5 && cmake --build build --config Release'
        }
    },
    opts = {
        defaults = {
            mappings = {
                i = {
                    ['<esc>'] = 'close',
                    ['<C-u>'] = false,
                }
            }
        },
        pickers = {
            find_files = {
                theme = 'dropdown',
            },
            oldfiles = {
                theme = 'dropdown',
            },
            current_buffer_tags = {
                theme = 'dropdown',
            },
            lsp_document_symbols = {
                theme = 'dropdown',
            },
            lsp_workspace_symbols = {
                theme = 'dropdown',
            },
        },
        extensions = {
            tasks = {
                output = {
                    style = 'float',   -- 'vsplit' | 'split' | 'float'
                    layout = 'center', -- 'bottom' | 'left' | 'right' | 'center'
                    scale = 0.4,       -- output window to editor size ratio
                },
                -- Directory to store the modified commands data to.
                -- Set it to false to disable saving modified commands.
                data_dir = false,
                -- other picker setup values
            },
            fzf = {
                fuzzy = true,                   -- false will only do exact matching
                override_generic_sorter = true, -- override the generic sorter
                override_file_sorter = true,    -- override the file sorter
                case_mode = "smart_case",       -- or "ignore_case" or "respect_case"
                -- the default case_mode is "smart_case"
            }
        }
    },
    config = function(_, opts)
        local telescope = require('telescope')
        telescope.setup(opts)
        telescope.load_extension('fzf')
        -- 快捷键配置
        local builtin = require('telescope.builtin')
        local km = vim.keymap

        km.set('n', '<C-p>', builtin.find_files, { desc = '搜索文件' })
        km.set('n', '<leader>P', builtin.commands, { desc = '搜索指令' })
        km.set('n', '<leader>Ph', builtin.command_history, { desc = '搜索历史指令' })
        km.set('n', '<leader>h', builtin.oldfiles, { desc = '搜索历史文件' })
        km.set('n', '<leader>b', builtin.builtin, { desc = '列出内置选择器' })
        km.set('n', '<leader>t', builtin.lsp_document_symbols, { desc = '定位到当前文件中的符号' })
        km.set('n', '<leader>T', builtin.lsp_workspace_symbols, { desc = '定位到工作区中的符号' })
        km.set('n', '<leader><leader>f', builtin.grep_string, { desc = '在当前目录搜索光标下/选中的字符' })
        km.set('n', '<leader>F', builtin.live_grep, { desc = '在目录中进行模糊搜索' })
        km.set('n', '<leader>k', builtin.keymaps, { desc = '搜索按键映射' })
        km.set('n', '<leader>m', builtin.help_tags, { desc = '搜索帮助' })
    end
}
